/*
 * Fichier d'en-tête du projet menulib
 *
 * Cible : PSP
 * Auteur : BuLLeKeUp
 * Date de création : 17/03/2012
 * Date de dernière modification : 17/03/2012
 *
 * Ce projet est sous license GNU GPL v3. Consultez la license associée dans le repertoire doc/gplv3.txt
 * ou rendez vous sur http://www.gnu.org/copyleft/gpl.html
 *
 * Nom du fichier : thread_functions.cpp
 *
 * Description : Implémentations des fonctions de threading
 *
 */

#include "thread_functions.h"

int ctrlThread(SceSize args, void *argp) {
    
    ctrlHandler *handler = static_cast<ctrlHandler *>(argp);
    ctrlStruct *structCtrl = handler->getStructCtrl();
    
    switch(structCtrl->classType) {
        case MENU :
            handler->runThreadMenu();
            break;
    }
    
    return EXIT_SUCCESS;
}

SceUID setupCtrlThread() {
    return sceKernelCreateThread("Ctrl Thread", ctrlThread, 0x20, 0x10000, THREAD_ATTR_USER, 0);
}

int launchCtrlThread(SceUID thread, ctrlHandler *p_handler) {
    if((thread > 0) && (p_handler != NULL)){
        sceKernelStartThread(thread, sizeof(ctrlHandler), p_handler);
        return EXIT_SUCCESS;
    }
    return EXIT_FAILURE;
}